const swapFaucet = async(browser, page) => {
    try {
        // 使用 browser.waitForEvent 监听新页面事件（返回 Promise）
        const [swapPage] = await Promise.all([
            browser.waitForEvent('page', {timeout:60000}), // 等待新页面打开
            page.locator("xpath=//button[text()='Swap']").click() // 触发点击操作
        ]);
    
        await swapPage.waitForLoadState('load');
        // 操作新页面中的 Faucet 按钮
        await swapPage.locator("xpath=//nav//a[text()='Faucet']").click();
        const Connect = await swapPage.locator("xpath=//button[text()='Connect']").all();
        if (Connect.length > 0){
            await swapPage.waitForTimeout(2000);
            // 操作新页面中的 'MetaMask
            const [xhlLoginpage] = await Promise.all([
                browser.waitForEvent('page', {timeout:240000}), // 等待新窗口打开
                swapPage.locator("xpath=//div[text()='MetaMask']").click(),
                console.log('点击钱包')
            ]);
            // 等待新页面加载
            await xhlLoginpage.waitForLoadState('networkidle', {timeout:240000});
            if (xhlLoginpage){
                console.log('新页面加载完成')
                await xhlLoginpage.locator('xpath=//button[@data-testid="confirm-btn"]').click();
                console.log("连接成功")
            }
        } else {
            console.log('已经连接钱包')
        }
        await swapPage.locator("xpath=//button/span[text()='Request Token']").click();
        await swapPage.close()
    } catch (err) {
        console.error(err);
    }
};

module.exports = { swapFaucet };